# -*- coding: utf-8 -*-
# @Time : 2024/3/4 21:47
# @Author : TH
# Description:封装requests的父类

import requests
class RequestOperation:

    def __init__(self):
        # 声明一个标记，判断请求的结果是json格式还是text格式，方便后续预期和实际结果的对比。
        # True:响应结果为json格式   False:响应结果为text格式
        self.flag = True

    def send_request(self, method, url, data, cookie=None):
        """
        发送请求
        :param method: 请求方法
        :param url:请求地址
        :param data:请求参数
        :return:返回响应数据的对象
        """
        # get_response = requests.request(self, method, url, data=data)
        if method == 'GET':
            return requests.get(url, params=data, cookies=cookie)
        elif method == 'POST':
            return requests.post(url, json=data, cookies=cookie)
        else:
            return "请求方法错误"

    def get_response(self, method, url, data, cookie=None):
        """
        处理获取响应结果
        :return:
        """
        __get_rep = self.send_request(method, url, data, cookie)
        if __get_rep == "请求方法错误":
            pass
        else:
            # 如果获取的json格式返回json,非json格式返回文本
            try:
                self.flag = True
                return __get_rep.json()
            except:
                # 返回text时进行处理
                self.flag = False
                response_dict = {}
                response_dict["Content-Length"] = __get_rep.headers["Content-Length"]
                response_dict['Content-Type'] = __get_rep.headers["Content-Type"]
                response_dict["text"] = __get_rep.text
                return response_dict
